package tools

import (
	"os"
	"regexp"
)

func DelSqlComments(inputFileName, outputFileName string) {
	// 读取SQL文件内容
	sqlContent, err := os.ReadFile(inputFileName)
	if err != nil {
		panic(err)
	}

	content := removeComments(string(sqlContent))

	// 创建或打开文件
	file, err := os.OpenFile(outputFileName, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
	if err != nil {
		panic(err)
	}
	defer file.Close() // 确保在函数结束时关闭文件

	// 将字符串写入文件
	_, err = file.WriteString(content)
	if err != nil {
		panic(err)
	}
}

func removeComments(sql string) string {
	// 字段注释
	columnComments, _ := regexp.Compile(`COMMENT '.*',`)
	// 表注释
	tableComments, _ := regexp.Compile(`COMMENT = '.*'`)

	// 替换字段注释
	sql = columnComments.ReplaceAllString(sql, "COMMENT '',")

	// 替换表注释
	sql = tableComments.ReplaceAllString(sql, "COMMENT = ''")

	return sql
}
